export {};
/* 
    1. 需求： 封装一个函数，传入一个参数，包装成数组返回（可能是 number/string/boolean 等）
	fn(20)  =>  [20]
	fn(true)  =>  [true]
*/

const fn = <T>(a: T): [T] => {
  return [a];
};
console.log('fn(20) -----> ', fn(20));
console.log('fn(true) -----> ', fn(true));

/* 
    2. 需求： 封装一个函数，传入数组, 交换数组两项的位置（可能是 number/string/boolean 等）
    fn([true,20])  =>  [20,true]
*/

const fnArr = <T, K>(arr: [T, K]): [K, T] => {
  return [arr[1], arr[0]];
};
console.log('fn([true,20]) -----> ', fnArr([true, 20]));
// const fnArr = <T, K>(arr: [T, K]): [K, T] => {
//   return [arr[1], arr[0]];
// };
